Description
This module covers the security analysis - as well as the secure development - of software-based systems, both on an architectural as well as a system level. The main goal of this module is to teach the foundations of secure software design, secure programming, and security testing. The module requires a solid understanding of software development in general and in particular, of at least one programming language (e.g., Java, JavaScript, Ruby, C#, F#, or C) and basic software development tools such as an IDE (e.g., Eclipse, VS Code), a revision system (e.g., git), or build systems (e.g., Maven, Gradle, npm, FAKE). Moreover, an understanding of database and Web applications is required. The labs require a basic command of Linux in general and the command line (shell) in particular.